WSL2でNode.jsプロジェクトをビルド時にJavaScript heap out of memoryが発生した場合

WSL2でNode.jsプロジェクトをビルド時にJavaScript heap out of memoryが発生した場合

発生したエラーメッセージ

Node.jsプロジェクトをビルド時に発生した。

FATAL ERROR: Reached heap limit Allocation failed - JavaScript heap out of memory

現在の状態を確認

以下コマンドを実行して確認する。

node -e 'console.log(v8.getHeapStatistics().heap_size_limit/(1024*1024))'

この結果よりも多く割り当てる必要がある。

--max-old-space-size を設定

以下のコマンドで設定する。

export NODE_OPTIONS="--max-old-space-size=8192"

8192 に設定した。確認コマンドで値が上書きされていることを確認する。
ターミナルを再起動すると、また最初の設定に戻ってしまうため、 .bashrc.zshrc に上記コマンドを記述して恒常化すると毎回設定する手間が省ける。

ちなみに、今回は 8GB にしたかったので 8192 としたが、他にも値を変更出来る。

メモリ設定値
5GBexport NODE_OPTIONS="--max-old-space-size=5120"
6GBexport NODE_OPTIONS="--max-old-space-size=6144"
7GBexport NODE_OPTIONS="--max-old-space-size=7168"
8GBexport NODE_OPTIONS="--max-old-space-size=8192"

つまり、 export NODE_OPTIONS="--max-old-space-size=(X * 1024)"X が設定したいメモリとなる。